Pipe (لوله) یکی از قدرتمندترین مفاهیم در لینوکس است که با علامت |
نشان داده میشود. Pipe به شما اجازه میدهد خروجی یک فرمان را به عنوان
ورودی فرمان دیگر ارسال کنید.
با استفاده از Pipe، میتوانید چندین فرمان را به هم متصل کنید و یک زنجیره از فرمانها بسازید که هر کدام خروجی خود را به فرمان بعدی میدهند.
| ویژگی | Pipe (|) |
Redirection (>) |
|---|---|---|
| هدف | ارسال خروجی به فرمان دیگر | ارسال خروجی به فایل |
| نحوه کار | خروجی یک دستور، ورودی دستور بعدی میشود | خروجی در یک فایل ذخیره میشود |
| مثال | ls | grep ".txt" |
ls > files.txt |
توضیح: خروجی ls -1 (لیست فایلها) به wc -l (شمارش خطوط) داده میشود.
توضیح: فرایندهای در حال اجرا را با ps aux میگیرد و با grep
فقط موارد مربوط به firefox را نمایش میدهد.
توضیح: ls -la همه فایلها را نمایش میدهد و grep "^d"
فقط خطوطی که با d (دایرکتوری) شروع میشوند را نشان میدهد.
میتوانید چندین Pipe را پشت سر هم قرار دهید و زنجیرهای از فرمانها بسازید.
توضیح:
cat /var/log/syslog → نمایش محتوای فایل لاگgrep "error" → فیلتر کردن خطوط حاوی "error"head -n 10 → نمایش فقط ۱۰ خط اول
توضیح: تعداد دفعاتی که از sudo استفاده کردهاید را نشان میدهد.
میتوانید Pipe و Redirection را با هم ترکیب کنید تا خروجی نهایی را در یک فایل ذخیره کنید.
توضیح: ابتدا فایلهای .txt را با grep پیدا میکند،
سپس خروجی را در txt_files.txt ذخیره میکند.
توضیح: tee هم خروجی را در ترمینال نشان میدهد و هم در فایل ذخیره میکند.
| دستور | کاربرد |
|---|---|
ls -la | less |
مشاهده صفحهبهصفحه خروجی ls |
history | grep "apt" |
پیدا کردن دستورات apt در تاریخچه |
cat file.txt | sort | uniq |
مرتبسازی و حذف تکراریها |
ps aux | sort -nrk 3 | head -5 |
نمایش ۵ فرایند با بیشترین مصرف CPU |
find . -name "*.txt" | xargs grep "error" |
جستجوی "error" در همه فایلهای .txt |
dmesg | tail -20 |
نمایش ۲۰ خط آخر پیامهای کرنل |
| فاصله بگذارید.
| با دستورات interactive: برخی دستورات (مثل vim)
نمیتوانند ورودی Pipe را بگیرند.
|) خروجی یک فرمان را به ورودی فرمان دیگر میدهد.>) فرق دارد که خروجی را به فایل میفرستد.ls -la | grep "^d" | wc -l تعداد دایرکتوریهای فعلی را بشمارید.history | grep "sudo" | tail -5 ۵ دستور اخیر دارای sudo را ببینید.cat /etc/passwd | cut -d: -f1 | sort لیست کاربران سیستم را مرتب کنید.ps aux را به grep و سپس به less بدهید.